package com.zys.dao;

import java.util.Map;
import java.util.List;

import com.zys.pojo.Role;

/**
 * 处理角色 Dao 层
 */
public interface RoleDao {
  /**
   * 查询分类列表
   *
   * @return List
   */
  List<Role> findAll();

  /**
   * 添加角色
   *
   * @param role 角色信息
   */
  void add(Role role);

  /**
   * 关联权限和角色
   *
   * @param map { roleId: "角色 id", userId: "用户 id"}
   */
  void setRoleIdAndRightId(Map<String, Integer> map);

  /**
   * 根据 id 查询角色信息
   *
   * @param id 角色 id
   * @return 角色信息
   */
  Role findRoleById(Integer id);

  /**
   * 修改角色信息
   *
   * @param role 角色信息
   */
  void edit(Role role);

  /**
   * 根据 id 查询角色所拥有的权限
   *
   * @param id 角色 id
   * @return List
   */
  List<Integer> findRightsIdsByRoleId(Integer id);

  /**
   * 移除角色和权限的关联关系
   *
   * @param id 角色 id
   */
  void rmRelation4RoleAndRights(Integer id);


  /**
   * 设置角色和权限的关联关系
   *
   * @param map { rightsId: 权限 id, roleId: "角色 id"}
   */
  void setRelation4RoleAndRights(Map<String, Integer> map);

  /**
   * 根据 id 删除角色
   *
   * @param id 角色 id
   */
  void delete(Integer id);
}
